// 声明语法名称 文件名相同 Antlr的语法DSL
// Cymbol v1
grammar Cymbol;

// 多个声明
decl: varDeclaration*;

// 'int i = 2;' 'int j;'
varDeclaration : type ID ('=' expreession) ? ';';

// 
type : 'float' | 'int';

// i+2;
expreession : primary ('+' primary)* ;

// 原子数据
primary : INT | ID | '(' expreession ')';

// 词法解析器
ID : LETTER (LETTER | INT)*;
fragment LETTER : [a-zA-Z];
INT : [0-9]+;

// 空格
WS : (' ' |'\r'|'\n'|'\t') ->skip;
// 注释
SL_COMMENT : '//' ~('\r'|'\n')* '\r' ? '\n' -> skip;
